Reasoning About Inheritance and Unrestricted Reuse in Object-Oriented Concurrent Systems
نویسنده
چکیده
Code reuse is a fundamental aspect of object-oriented programs, and in particular, the mechanisms of inheritance and late binding provide great flexibility in code reuse, without semantical limitations other than typecorrectness. However, modular reasoning about late binding and inheritance is challenging, and formal reasoning approaches place semantical restrictions on code reuse in order to preserve properties from superclasses. The overall aim of this paper is to develop a formal framework for modular reasoning about classes and inheritance, supporting unrestricted reuse of code, as well as of specifications. The main contribution is a Hoarestyle logic supporting free reuse, worked out for a high-level concurrent object-oriented language. We also show results on verification reuse, based on a combination of Hoare-style logic and static checking. An example illustrates the difference to comparable reasoning formalisms.
منابع مشابه
Verifiable Programming of Object-Oriented and Distributed Systems
Distributed and concurrent object-oriented systems are difficult to analyze due to the complexity of their concurrency, communication, and synchronization mechanisms. This paper explores a programming paradigm based on active, concurrent objects communicating by so-called asynchronous method calls giving rise to efficient interaction by means of non-blocking method calls, implemented by means o...
متن کاملA modular reasoning system using uninterpreted predicates for code reuse
This paper proposes a modular proof system based on uninterpreted predicates. The proposed proof system allows modular reasoning about programs with an open-world assumption, which goes beyond behavioral subtyping. The proof system enables modular reasoning about languages with very flexible code reuse mechanisms, such as traits and deltas in the context of object-oriented programming. Whereas ...
متن کاملTerm Graph Rewriting as a Specification and Implementation Framework for Concurrent Object-Oriented Programming Languages
The usefulness of the generalised computational model of Term Graph Rewriting Systems (TGRS) for designing and implementing concurrent object-oriented languages, and also for specifying and reasoning about the interaction between concurrency and object-orientation (such as concurrent synchronisation of methods or interference problems between concurrency and inheritance), is examined in this pa...
متن کاملInheritance in Concurrent Objects
Inheritance is a crucial concept in object-oriented speciication, design and programming, potentially enabling code reuse. This concept has been recently integrated with concurrency, due to the development of concurrent object-oriented programming. This chapter reviews the inheritance principle initially in the sequential setting and then in the context of concurrent object calculi. We discuss,...
متن کاملInheritance: from code reuse to reasoning reuse
In the Object-Oriented approach a designer can, given an existing base class, use inheritance to build a derived class that extends, or that slightly differs from the base class. But in order to exploit the full potential of inheritance to build systems incrementally, the designer must also be able to reason about the derived class incrementally. This paper presents a specification notation and...
متن کامل